Aspect-Oriented Requirements Engineering for Advanced Separation of Concerns: A Review
نویسنده
چکیده
Software engineering was introduced to cope with software crisis with two fundamental principles: separation of concerns and modularity. Many programming paradigms have been proposed and used while considering the fundamental principles from the early days. Complex software systems were successfully modularized but complete separation of concerns is still impossible to achieve using today’s most popular programming paradigms such as object-oriented programming. There are some concerns which could not be separated properly in a single class or module due to their highly coupling with other classes or modules’ behaviors. We call such unmodularized concerns as crosscutting concerns and these are responsible for scattering and tangling. Aspects are the natural evolution of the object-oriented paradigm. They provide a solution to some difficulties encountered with object-oriented programming, sometimes scattering and tangling. Hence, Aspect-Oriented Software Development (AOSD) is another step towards achieving improved modularity during software development. It gives emphasis to the separation of crosscutting concerns i.e. advanced separation of concerns and encapsulation of crosscutting concerns in separate modules, known as aspects. It later uses composition mechanism to weave them with other core modules at loading time, compilation time, or run-time. Aspect-Oriented Requirements Engineering (AORE) is an early phase in AOSD that supports separation of crosscutting concerns at requirements level. It does not replace but rather complements any of the existing requirements methodologies. Over the last few years, several research efforts have been devoted to this area. Several techniques for crosscutting concern identification have already been proposed. In this paper, an attempt is made to review the existing approaches and understand their contribution to requirements engineering.
منابع مشابه
Aspect Oriented Requirements Engineering
Requirements engineering techniques that explicitly recognize the importance of clearly identifying and treating crosscutting concerns are called Aspect-oriented Requirements Engineering Approaches (AORE approaches). The emergence of aspect-oriented programming languages has raised the explicit need to identify crosscutting concerns already during the analysis phase. Besides this observation, t...
متن کاملAdvanced Separation of Concerns for Dynamic, Lightweight Languages
The purpose of this dissertation is to investigate the use of advanced separation of concerns techniques—specifically, aspect-oriented programming—in the context of the problems that call for the use of dynamic, lightweight languages. Advanced separation of concerns techniques are feasible and useful for dynamic, lightweight languages. The AOPy project is an aspect-oriented system implemented i...
متن کاملAosd – Fine - Grained & Integrated Aore Process
Focus of Aspect Oriented Software Development is on the identification, separation, representation and composition of crosscutting concerns. Crosscutting concerns behavior effects the whole system development. Traditional requirement engineering process does not cater for these crosscutting concerns. A new aspect oriented requirement engineering process is proposed to overcome this deficiency. ...
متن کاملTowards an Integrated AORE Process Model for Handling Crosscutting Concerns
The two fundamental principles in software engineering to deal software complexity are separation of concerns and modularity. A lot of techniques exist in literature adopting these fundamental principles and some success in this direction has been achieved. Despite this improvement, still complete separation of concerns is not achieved and is far from adequate. Aspect-Oriented Software Developm...
متن کاملAspect-Oriented Requirements with UML
Crosscutting concerns are responsible for producing spread and tangled representations throughout the software life cycle. Effective separation of such concerns is essential to improve understandability and maintainability of artefacts at the various software development stages. Aspect-oriented software development holds promise for the purpose. However, to date, most of the work in this area h...
متن کامل